library(Seurat)
Loading required package: ggplot2
Loading required package: cowplot
package ‘cowplot’ was built under R version 3.5.2
Attaching package: ‘cowplot’

The following object is masked from ‘package:ggplot2’:

    ggsave

Loading required package: Matrix
library(dplyr)

Attaching package: ‘dplyr’

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
# Load the PBMC dataset
pbmc.data <- Read10X(data.dir = "~/Box Sync/laptop_folders/Willenbring/Feng Single Cell/willenbringh/FC_102418_analysis/filtered_gene_bc_matrices/mm10/")
# Examine the memory savings between regular and sparse matrices
dense.size <- object.size(x = as.matrix(x = pbmc.data))
dense.size
1423338192 bytes
sparse.size <- object.size(x = pbmc.data)
sparse.size
453499832 bytes
dense.size/sparse.size
3.1 bytes
pbmc <- CreateSeuratObject(raw.data = pbmc.data, min.cells = 3, min.genes = 200, 
    project = "10X_PBMC")
# The number of genes and UMIs (nGene and nUMI) are automatically calculated
# for every object by Seurat.  For non-UMI data, nUMI represents the sum of
# the non-normalized values within a cell We calculate the percentage of
# mitochondrial genes here and store it in percent.mito using AddMetaData.
# We use object@raw.data since this represents non-transformed and
# non-log-normalized counts The % of UMI mapping to MT-genes is a common
# scRNA-seq QC metric.
mito.genes <- grep(pattern = "^mt-", x = rownames(x = pbmc@data), value = TRUE)
percent.mito <- Matrix::colSums(pbmc@raw.data[mito.genes, ])/Matrix::colSums(pbmc@raw.data)
# AddMetaData adds columns to object@meta.data, and is a great place to
# stash QC stats
pbmc <- AddMetaData(object = pbmc, metadata = percent.mito, col.name = "percent.mito")
VlnPlot(object = pbmc, features.plot = c("nGene", "nUMI", "percent.mito"), nCol = 3)

# GenePlot is typically used to visualize gene-gene relationships, but can
# be used for anything calculated by the object, i.e. columns in
# object@meta.data, PC scores etc.  Since there is a rare subset of cells
# with an outlier level of high mitochondrial percentage and also low UMI
# content, we filter these as well
par(mfrow = c(1, 2))
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "percent.mito")
GenePlot(object = pbmc, gene1 = "nUMI", gene2 = "nGene")

# We filter out cells that have unique gene counts over 2,500 or less than
# 200 Note that low.thresholds and high.thresholds are used to define a
# 'gate'.  -Inf and Inf should be used if you don't want a lower or upper
# threshold.
pbmc <- FilterCells(object = pbmc, subset.names = c("nGene", "percent.mito"), 
    low.thresholds = c(200, -Inf), high.thresholds = c(8000, 0.50))
pbmc <- NormalizeData(object = pbmc, normalization.method = "LogNormalize", 
    scale.factor = 10000)
Performing log-normalization
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
pbmc <- FindVariableGenes(object = pbmc, mean.function = ExpMean, dispersion.function = LogVMR, 
    x.low.cutoff = 0.0125, x.high.cutoff = 3, y.cutoff = 0.5)
Calculating gene means
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|
Calculating gene variance to mean ratios
0%   10   20   30   40   50   60   70   80   90   100%
[----|----|----|----|----|----|----|----|----|----|
**************************************************|

pbmc <- ScaleData(object = pbmc, vars.to.regress = c("nUMI", "percent.mito"))
Regressing out: nUMI, percent.mito

  |                                                                                                          
  |                                                                                                    |   0%
  |                                                                                                          
  |=                                                                                                   |   1%
  |                                                                                                          
  |==                                                                                                  |   2%
  |                                                                                                          
  |===                                                                                                 |   3%
  |                                                                                                          
  |====                                                                                                |   4%
  |                                                                                                          
  |=====                                                                                               |   5%
  |                                                                                                          
  |======                                                                                              |   6%
  |                                                                                                          
  |=======                                                                                             |   7%
  |                                                                                                          
  |========                                                                                            |   8%
  |                                                                                                          
  |=========                                                                                           |   9%
  |                                                                                                          
  |==========                                                                                          |  10%
  |                                                                                                          
  |===========                                                                                         |  11%
  |                                                                                                          
  |============                                                                                        |  12%
  |                                                                                                          
  |=============                                                                                       |  13%
  |                                                                                                          
  |==============                                                                                      |  14%
  |                                                                                                          
  |===============                                                                                     |  15%
  |                                                                                                          
  |================                                                                                    |  16%
  |                                                                                                          
  |=================                                                                                   |  17%
  |                                                                                                          
  |==================                                                                                  |  18%
  |                                                                                                          
  |===================                                                                                 |  19%
  |                                                                                                          
  |====================                                                                                |  20%
  |                                                                                                          
  |=====================                                                                               |  21%
  |                                                                                                          
  |======================                                                                              |  22%
  |                                                                                                          
  |=======================                                                                             |  23%
  |                                                                                                          
  |========================                                                                            |  24%
  |                                                                                                          
  |=========================                                                                           |  25%
  |                                                                                                          
  |==========================                                                                          |  26%
  |                                                                                                          
  |===========================                                                                         |  27%
  |                                                                                                          
  |============================                                                                        |  28%
  |                                                                                                          
  |=============================                                                                       |  29%
  |                                                                                                          
  |==============================                                                                      |  30%
  |                                                                                                          
  |===============================                                                                     |  31%
  |                                                                                                          
  |================================                                                                    |  32%
  |                                                                                                          
  |=================================                                                                   |  33%
  |                                                                                                          
  |==================================                                                                  |  34%
  |                                                                                                          
  |===================================                                                                 |  35%
  |                                                                                                          
  |====================================                                                                |  36%
  |                                                                                                          
  |=====================================                                                               |  37%
  |                                                                                                          
  |======================================                                                              |  38%
  |                                                                                                          
  |=======================================                                                             |  39%
  |                                                                                                          
  |========================================                                                            |  40%
  |                                                                                                          
  |=========================================                                                           |  41%
  |                                                                                                          
  |==========================================                                                          |  42%
  |                                                                                                          
  |===========================================                                                         |  43%
  |                                                                                                          
  |============================================                                                        |  44%
  |                                                                                                          
  |=============================================                                                       |  45%
  |                                                                                                          
  |==============================================                                                      |  46%
  |                                                                                                          
  |===============================================                                                     |  47%
  |                                                                                                          
  |================================================                                                    |  48%
  |                                                                                                          
  |=================================================                                                   |  49%
  |                                                                                                          
  |==================================================                                                  |  50%
  |                                                                                                          
  |===================================================                                                 |  51%
  |                                                                                                          
  |====================================================                                                |  52%
  |                                                                                                          
  |=====================================================                                               |  53%
  |                                                                                                          
  |======================================================                                              |  54%
  |                                                                                                          
  |=======================================================                                             |  55%
  |                                                                                                          
  |========================================================                                            |  56%
  |                                                                                                          
  |=========================================================                                           |  57%
  |                                                                                                          
  |==========================================================                                          |  58%
  |                                                                                                          
  |===========================================================                                         |  59%
  |                                                                                                          
  |============================================================                                        |  60%
  |                                                                                                          
  |=============================================================                                       |  61%
  |                                                                                                          
  |==============================================================                                      |  62%
  |                                                                                                          
  |===============================================================                                     |  63%
  |                                                                                                          
  |================================================================                                    |  64%
  |                                                                                                          
  |=================================================================                                   |  65%
  |                                                                                                          
  |==================================================================                                  |  66%
  |                                                                                                          
  |===================================================================                                 |  67%
  |                                                                                                          
  |====================================================================                                |  68%
  |                                                                                                          
  |=====================================================================                               |  69%
  |                                                                                                          
  |======================================================================                              |  70%
  |                                                                                                          
  |=======================================================================                             |  71%
  |                                                                                                          
  |========================================================================                            |  72%
  |                                                                                                          
  |=========================================================================                           |  73%
  |                                                                                                          
  |==========================================================================                          |  74%
  |                                                                                                          
  |===========================================================================                         |  75%
  |                                                                                                          
  |============================================================================                        |  76%
  |                                                                                                          
  |=============================================================================                       |  77%
  |                                                                                                          
  |==============================================================================                      |  78%
  |                                                                                                          
  |===============================================================================                     |  79%
  |                                                                                                          
  |================================================================================                    |  80%
  |                                                                                                          
  |=================================================================================                   |  81%
  |                                                                                                          
  |==================================================================================                  |  82%
  |                                                                                                          
  |===================================================================================                 |  83%
  |                                                                                                          
  |====================================================================================                |  84%
  |                                                                                                          
  |=====================================================================================               |  85%
  |                                                                                                          
  |======================================================================================              |  86%
  |                                                                                                          
  |=======================================================================================             |  87%
  |                                                                                                          
  |========================================================================================            |  88%
  |                                                                                                          
  |=========================================================================================           |  89%
  |                                                                                                          
  |==========================================================================================          |  90%
  |                                                                                                          
  |===========================================================================================         |  91%
  |                                                                                                          
  |============================================================================================        |  92%
  |                                                                                                          
  |=============================================================================================       |  93%
  |                                                                                                          
  |==============================================================================================      |  94%
  |                                                                                                          
  |===============================================================================================     |  95%
  |                                                                                                          
  |================================================================================================    |  96%
  |                                                                                                          
  |=================================================================================================   |  97%
  |                                                                                                          
  |==================================================================================================  |  98%
  |                                                                                                          
  |=================================================================================================== |  99%
  |                                                                                                          
  |====================================================================================================| 100%

Time Elapsed:  34.7452981472015 secs

Scaling data matrix

  |                                                                                                          
  |                                                                                                    |   0%
  |                                                                                                          
  |======                                                                                              |   6%
  |                                                                                                          
  |===========                                                                                         |  11%
  |                                                                                                          
  |=================                                                                                   |  17%
  |                                                                                                          
  |======================                                                                              |  22%
  |                                                                                                          
  |============================                                                                        |  28%
  |                                                                                                          
  |=================================                                                                   |  33%
  |                                                                                                          
  |=======================================                                                             |  39%
  |                                                                                                          
  |============================================                                                        |  44%
  |                                                                                                          
  |==================================================                                                  |  50%
  |                                                                                                          
  |========================================================                                            |  56%
  |                                                                                                          
  |=============================================================                                       |  61%
  |                                                                                                          
  |===================================================================                                 |  67%
  |                                                                                                          
  |========================================================================                            |  72%
  |                                                                                                          
  |==============================================================================                      |  78%
  |                                                                                                          
  |===================================================================================                 |  83%
  |                                                                                                          
  |=========================================================================================           |  89%
  |                                                                                                          
  |==============================================================================================      |  94%
  |                                                                                                          
  |====================================================================================================| 100%
pbmc <- RunPCA(object = pbmc, pc.genes = pbmc@var.genes, do.print = TRUE, pcs.print = 1:5, 
    genes.print = 5)
[1] "PC1"
[1] "Igfbp7"   "Cp"       "C3"       "Trf"      "Tmem176b"
[1] ""
[1] "Plac8"  "Phgr1"  "Lgals4" "Ctse"   "Mgst3" 
[1] ""
[1] ""
[1] "PC2"
[1] "Ambp"   "Sftpd"  "Scara3" "Gsta3"  "Hhex"  
[1] ""
[1] "Ccdc80" "Axl"    "Aebp1"  "Col1a2" "Vim"   
[1] ""
[1] ""
[1] "PC3"
[1] "Birc5"         "2810417H13Rik" "Ccna2"         "Cdca3"         "Pbk"          
[1] ""
[1] "Btg2"    "Osgin1"  "Klf6"    "Mt2"     "St3gal5"
[1] ""
[1] ""
[1] "PC4"
[1] "Ttr"   "Sepp1" "Fga"   "Gjb1"  "Lrg1" 
[1] ""
[1] "Anxa3"  "Ccnd1"  "Phgdh"  "Cxcl16" "Basp1" 
[1] ""
[1] ""
[1] "PC5"
[1] "Dhrs7"  "Tmsb10" "Ndrg1"  "Fabp5"  "Bnip3" 
[1] ""
[1] "Gsta3" "Gsto1" "Car2"  "Cbr1"  "Lbp"  
[1] ""
[1] ""
VizPCA(object = pbmc, pcs.use = 1:12)

PCAPlot(object = pbmc, dim.1 = 1, dim.2 = 2)

PCAPlot(object = pbmc, dim.1 = 1, dim.2 = 3)

PCAPlot(object = pbmc, dim.1 = 2, dim.2 = 3)

pbmc <- ProjectPCA(object = pbmc, do.print = FALSE)
PCHeatmap(object = pbmc, pc.use = 1:4, cells.use = 200)

#dim(0, do.balanced = TRUE, label.columns = FALSE)
marker_genes = c("Hnf4a", "Alb", "Fah", "Krt8", "Krt18", "G6pc", "Sox9", "Krt7", "Krt19", "Epcam", "Onecut1", "Afp", "Xist")
vlnPlot(pbmc,c("Hnf4a", "Alb", "Fah"))
'vlnPlot' is deprecated.
Use 'VlnPlot' instead.
See help("Deprecated") and help("Seurat-deprecated").

pbmc <- FindClusters(object = pbmc, reduction.type = "pca", dims.use = 1:5, resolution = 0.6, print.output = 0, save.SNN = TRUE)
pbmc <- RunTSNE(object = pbmc, dims.use = 1:10, do.fast = TRUE)
TSNEPlot(object = pbmc)

PrintFindClustersParams(object = pbmc)
Parameters used in latest FindClusters calculation run on: 2019-02-19 14:19:46
=============================================================================
Resolution: 0.6
-----------------------------------------------------------------------------
Modularity Function    Algorithm         n.start         n.iter
     1                   1                 100             10
-----------------------------------------------------------------------------
Reduction used          k.param          prune.SNN
     pca                 30                0.0667
-----------------------------------------------------------------------------
Dims used in calculation
=============================================================================
1 2 3 4 5
VlnPlot(object = pbmc, features.plot = c("nGene", "nUMI", "percent.mito"), nCol = 3)

#install.packages( "devtools" )
#devtools::install_github( "anders-biostat/JsRCom" )
#devtools::install_github( "anders-biostat/sleepwalk" )
library(sleepwalk)
#sleepwalk(data.frame(pbmc@dr[["tsne"]]@cell.embeddings), featureMatrices = data.matrix(t(pbmc@data)))
sleepwalk(as.matrix(pbmc@dr[["tsne"]]@cell.embeddings), featureMatrices = as.matrix(t(pbmc@data)))
Estimating 'maxdist' for feature matrix 1
WebSocket opened
DotPlot(pbmc, marker_genes)

#library(MAST)
#pbmc=buildClusterTree(pbmc,do.reorder = TRUE,reorder.numeric = TRUE,pcs.use = 1:11)
#plotClusterTree(pbmc)
  singler = CreateSinglerObject(pbmc.data, annot = NULL, project.name="MCA", min.genes = 0,
  technology = "10X", species = "Mouse", citation = "",
  ref.list = list(), normalize.gene.length = F, variable.genes = "de",
  fine.tune = T, do.signatures = T, clusters = NULL, do.main.types = T, 
  reduce.file.size = T, numCores = SingleR.numCores)
[1] "Dimensions of counts data: 27997x6344"
[1] "Annotating data with Immgen..."
[1] "Variable genes method: de"
[1] "Number of DE genes:3784"
[1] "Number of cells: 6344"
[1] "Fine-tuning round on top cell types (using 11 CPU cores):"

  |                                                                                          |   0%, ETA NA
  |                                                                                                                  
  |                                                                                          |   1%, ETA 03:08
  |                                                                                                                     
  |=                                                                                         |   1%, ETA 03:13
  |                                                                                                                     
  |=                                                                                         |   1%, ETA 04:24
  |                                                                                                                     
  |=                                                                                         |   1%, ETA 04:41
  |                                                                                                                     
  |=                                                                                         |   1%, ETA 05:26
  |                                                                                                                     
  |=                                                                                         |   1%, ETA 06:17
  |                                                                                                                     
  |=                                                                                         |   2%, ETA 06:20
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 06:24
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 06:54
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 07:03
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 07:25
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 07:35
  |                                                                                                                     
  |==                                                                                        |   2%, ETA 08:34
  |                                                                                                                     
  |==                                                                                        |   3%, ETA 08:27
  |                                                                                                                     
  |===                                                                                       |   3%, ETA 08:09
  |                                                                                                                     
  |===                                                                                       |   3%, ETA 07:27
  |                                                                                                                     
  |===                                                                                       |   4%, ETA 07:09
  |                                                                                                                     
  |===                                                                                       |   4%, ETA 07:03
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 07:02
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 07:13
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 07:28
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 07:45
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 08:03
  |                                                                                                                     
  |====                                                                                      |   4%, ETA 08:14
  |                                                                                                                     
  |====                                                                                      |   5%, ETA 08:19
  |                                                                                                                     
  |====                                                                                      |   5%, ETA 08:35
  |                                                                                                                     
  |====                                                                                      |   5%, ETA 08:45
  |                                                                                                                     
  |====                                                                                      |   5%, ETA 08:51
  |                                                                                                                     
  |====                                                                                      |   5%, ETA 09:10
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 09:21
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 09:32
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 09:38
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 09:46
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 09:54
  |                                                                                                                     
  |=====                                                                                     |   5%, ETA 10:06
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:05
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:15
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:21
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:27
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:39
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:48
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 10:57
  |                                                                                                                     
  |=====                                                                                     |   6%, ETA 11:05
  |                                                                                                                     
  |======                                                                                    |   6%, ETA 11:04
  |                                                                                                                     
  |======                                                                                    |   6%, ETA 11:14
  |                                                                                                                     
  |======                                                                                    |   6%, ETA 11:30
  |                                                                                                                     
  |======                                                                                    |   6%, ETA 11:40
  |                                                                                                                     
  |======                                                                                    |   6%, ETA 11:46
  |                                                                                                                     
  |======                                                                                    |   7%, ETA 11:44
  |                                                                                                                     
  |======                                                                                    |   7%, ETA 11:20
  |                                                                                                                     
  |=======                                                                                   |   7%, ETA 10:54
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:38
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:37
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:41
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:47
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:50
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:53
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 10:58
  |                                                                                                                     
  |=======                                                                                   |   8%, ETA 11:02
  |                                                                                                                     
  |========                                                                                  |   8%, ETA 11:04
  |                                                                                                                     
  |========                                                                                  |   8%, ETA 11:02
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:01
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:04
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:07
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:13
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:18
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:25
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:31
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:36
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:40
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:45
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:48
  |                                                                                                                     
  |========                                                                                  |   9%, ETA 11:56
  |                                                                                                                     
  |=========                                                                                 |   9%, ETA 11:56
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 11:59
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:08
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:13
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:27
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:30
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:39
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:49
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:50
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 13:06
  |                                                                                                                     
  |=========                                                                                 |  10%, ETA 12:55
  |                                                                                                                     
  |=========                                                                                 |  11%, ETA 12:38
  |                                                                                                                     
  |==========                                                                                |  11%, ETA 12:37
  |                                                                                                                     
  |==========                                                                                |  11%, ETA 12:23
  |                                                                                                                     
  |==========                                                                                |  11%, ETA 12:07
  |                                                                                                                     
  |==========                                                                                |  11%, ETA 11:55
  |                                                                                                                     
  |==========                                                                                |  12%, ETA 11:59
  |                                                                                                                     
  |==========                                                                                |  12%, ETA 12:00
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 11:58
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 12:02
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 12:04
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 12:01
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 12:04
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 12:04
  |                                                                                                                     
  |===========                                                                               |  12%, ETA 11:59
  |                                                                                                                     
  |===========                                                                               |  13%, ETA 11:59
  |                                                                                                                     
  |===========                                                                               |  13%, ETA 12:01
  |                                                                                                                     
  |===========                                                                               |  13%, ETA 12:03
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:05
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:06
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:06
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:06
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:06
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:12
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:15
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:20
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:22
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:26
  |                                                                                                                     
  |============                                                                              |  13%, ETA 12:31
  |                                                                                                                     
  |============                                                                              |  14%, ETA 12:31
  |                                                                                                                     
  |============                                                                              |  14%, ETA 12:33
  |                                                                                                                     
  |============                                                                              |  14%, ETA 12:41
  |                                                                                                                     
  |============                                                                              |  14%, ETA 12:47
  |                                                                                                                     
  |============                                                                              |  14%, ETA 12:51
  |                                                                                                                     
  |============                                                                              |  14%, ETA 13:11
  |                                                                                                                     
  |=============                                                                             |  14%, ETA 13:06
  |                                                                                                                     
  |=============                                                                             |  14%, ETA 12:56
  |                                                                                                                     
  |=============                                                                             |  14%, ETA 12:44
  |                                                                                                                     
  |=============                                                                             |  15%, ETA 12:42
  |                                                                                                                     
  |=============                                                                             |  15%, ETA 12:31
  |                                                                                                                     
  |=============                                                                             |  15%, ETA 12:30
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:27
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:29
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:31
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:31
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:32
  |                                                                                                                     
  |==============                                                                            |  15%, ETA 12:37
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:36
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:36
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:37
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:42
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:42
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:46
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:46
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:52
  |                                                                                                                     
  |==============                                                                            |  16%, ETA 12:57
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 12:57
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:02
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:07
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:11
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:18
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:23
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:27
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:31
  |                                                                                                                     
  |===============                                                                           |  16%, ETA 13:34
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:34
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:35
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:38
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:38
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:41
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:51
  |                                                                                                                     
  |===============                                                                           |  17%, ETA 13:47
  |                                                                                                                     
  |================                                                                          |  17%, ETA 13:37
  |                                                                                                                     
  |================                                                                          |  17%, ETA 13:28
  |                                                                                                                     
  |================                                                                          |  18%, ETA 13:26
  |                                                                                                                     
  |================                                                                          |  18%, ETA 13:15
  |                                                                                                                     
  |================                                                                          |  18%, ETA 13:06
  |                                                                                                                     
  |================                                                                          |  18%, ETA 13:03
  |                                                                                                                     
  |=================                                                                         |  18%, ETA 12:59
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:56
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:56
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:54
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:51
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:46
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:43
  |                                                                                                                     
  |=================                                                                         |  19%, ETA 12:43
  |                                                                                                                     
  |==================                                                                        |  19%, ETA 12:41
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:42
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:43
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:44
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:46
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:48
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:50
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:51
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:52
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:51
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:53
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 12:55
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 13:00
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 13:02
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 13:07
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 13:09
  |                                                                                                                     
  |==================                                                                        |  20%, ETA 13:14
  |                                                                                                                     
  |==================                                                                        |  21%, ETA 13:14
  |                                                                                                                     
  |==================                                                                        |  21%, ETA 13:17
  |                                                                                                                     
  |===================                                                                       |  21%, ETA 13:20
  |                                                                                                                     
  |===================                                                                       |  21%, ETA 13:18
  |                                                                                                                     
  |===================                                                                       |  21%, ETA 13:11
  |                                                                                                                     
  |===================                                                                       |  21%, ETA 12:58
  |                                                                                                                     
  |===================                                                                       |  22%, ETA 12:51
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:46
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:48
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:50
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:48
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:49
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:52
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:53
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:53
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:55
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:57
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:57
  |                                                                                                                     
  |====================                                                                      |  22%, ETA 12:56
  |                                                                                                                     
  |====================                                                                      |  23%, ETA 12:57
  |                                                                                                                     
  |====================                                                                      |  23%, ETA 12:57
  |                                                                                                                     
  |====================                                                                      |  23%, ETA 12:59
  |                                                                                                                     
  |====================                                                                      |  23%, ETA 12:59
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 12:58
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 12:58
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 12:59
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 12:59
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:03
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:03
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:05
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:06
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:13
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:21
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:23
  |                                                                                                                     
  |=====================                                                                     |  23%, ETA 13:26
  |                                                                                                                     
  |=====================                                                                     |  24%, ETA 13:26
  |                                                                                                                     
  |=====================                                                                     |  24%, ETA 13:27
  |                                                                                                                     
  |=====================                                                                     |  24%, ETA 13:31
  |                                                                                                                     
  |=====================                                                                     |  24%, ETA 13:24
  |                                                                                                                     
  |======================                                                                    |  24%, ETA 13:24
  |                                                                                                                     
  |======================                                                                    |  24%, ETA 13:16
  |                                                                                                                     
  |======================                                                                    |  24%, ETA 13:12
  |                                                                                                                     
  |======================                                                                    |  25%, ETA 13:06
  |                                                                                                                     
  |======================                                                                    |  25%, ETA 13:06
  |                                                                                                                     
  |======================                                                                    |  25%, ETA 13:03
  |                                                                                                                     
  |======================                                                                    |  25%, ETA 13:01
  |                                                                                                                     
  |=======================                                                                   |  25%, ETA 12:58
  |                                                                                                                     
  |=======================                                                                   |  25%, ETA 12:56
  |                                                                                                                     
  |=======================                                                                   |  25%, ETA 12:55
  |                                                                                                                     
  |=======================                                                                   |  25%, ETA 12:51
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:49
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:48
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:46
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:44
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:42
  |                                                                                                                     
  |=======================                                                                   |  26%, ETA 12:43
  |                                                                                                                     
  |========================                                                                  |  26%, ETA 12:42
  |                                                                                                                     
  |========================                                                                  |  26%, ETA 12:41
  |                                                                                                                     
  |========================                                                                  |  26%, ETA 12:40
  |                                                                                                                     
  |========================                                                                  |  26%, ETA 12:39
  |                                                                                                                     
  |========================                                                                  |  26%, ETA 12:40
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:39
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:39
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:41
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:41
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:41
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:40
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:40
  |                                                                                                                     
  |========================                                                                  |  27%, ETA 12:37
  |                                                                                                                     
  |=========================                                                                 |  27%, ETA 12:37
  |                                                                                                                     
  |=========================                                                                 |  27%, ETA 12:37
  |                                                                                                                     
  |=========================                                                                 |  27%, ETA 12:33
  |                                                                                                                     
  |=========================                                                                 |  28%, ETA 12:33
  |                                                                                                                     
  |=========================                                                                 |  28%, ETA 12:30
  |                                                                                                                     
  |=========================                                                                 |  28%, ETA 12:23
  |                                                                                                                     
  |=========================                                                                 |  28%, ETA 12:19
  |                                                                                                                     
  |=========================                                                                 |  28%, ETA 12:15
  |                                                                                                                     
  |==========================                                                                |  28%, ETA 12:15
  |                                                                                                                     
  |==========================                                                                |  28%, ETA 12:14
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:14
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:15
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:15
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:14
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:12
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:11
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:10
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:08
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:07
  |                                                                                                                     
  |==========================                                                                |  29%, ETA 12:07
  |                                                                                                                     
  |===========================                                                               |  29%, ETA 12:07
  |                                                                                                                     
  |===========================                                                               |  29%, ETA 12:09
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:09
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:11
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:10
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:11
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:12
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:12
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:11
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:07
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:06
  |                                                                                                                     
  |===========================                                                               |  30%, ETA 12:04
  |                                                                                                                     
  |===========================                                                               |  31%, ETA 12:01
  |                                                                                                                     
  |============================                                                              |  31%, ETA 11:59
  |                                                                                                                     
  |============================                                                              |  31%, ETA 11:47
  |                                                                                                                     
  |============================                                                              |  31%, ETA 11:38
  |                                                                                                                     
  |============================                                                              |  32%, ETA 11:33
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:31
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:28
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:27
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:24
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:22
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:23
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:23
  |                                                                                                                     
  |=============================                                                             |  32%, ETA 11:23
  |                                                                                                                     
  |=============================                                                             |  33%, ETA 11:24
  |                                                                                                                     
  |=============================                                                             |  33%, ETA 11:24
  |                                                                                                                     
  |=============================                                                             |  33%, ETA 11:24
  |                                                                                                                     
  |=============================                                                             |  33%, ETA 11:25
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:25
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:26
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:26
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:27
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:29
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:31
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:35
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:36
  |                                                                                                                     
  |==============================                                                            |  33%, ETA 11:34
  |                                                                                                                     
  |==============================                                                            |  34%, ETA 11:32
  |                                                                                                                     
  |==============================                                                            |  34%, ETA 11:32
  |                                                                                                                     
  |==============================                                                            |  34%, ETA 11:29
  |                                                                                                                     
  |===============================                                                           |  34%, ETA 11:26
  |                                                                                                                     
  |===============================                                                           |  34%, ETA 11:17
  |                                                                                                                     
  |===============================                                                           |  34%, ETA 11:13
  |                                                                                                                     
  |===============================                                                           |  35%, ETA 11:13
  |                                                                                                                     
  |===============================                                                           |  35%, ETA 11:10
  |                                                                                                                     
  |===============================                                                           |  35%, ETA 11:10
  |                                                                                                                     
  |===============================                                                           |  35%, ETA 11:09
  |                                                                                                                     
  |===============================                                                           |  35%, ETA 11:08
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:08
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:04
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  35%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:05
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:06
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:08
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:09
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:10
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:10
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:11
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:12
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:12
  |                                                                                                                     
  |================================                                                          |  36%, ETA 11:13
  |                                                                                                                     
  |=================================                                                         |  36%, ETA 11:12
  |                                                                                                                     
  |=================================                                                         |  36%, ETA 11:13
  |                                                                                                                     
  |=================================                                                         |  36%, ETA 11:11
  |                                                                                                                     
  |=================================                                                         |  36%, ETA 11:11
  |                                                                                                                     
  |=================================                                                         |  37%, ETA 11:08
  |                                                                                                                     
  |=================================                                                         |  37%, ETA 11:07
  |                                                                                                                     
  |=================================                                                         |  37%, ETA 11:03
  |                                                                                                                     
  |=================================                                                         |  37%, ETA 10:57
  |                                                                                                                     
  |==================================                                                        |  37%, ETA 10:54
  |                                                                                                                     
  |==================================                                                        |  37%, ETA 10:51
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:50
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:47
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:45
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:45
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:42
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:42
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:41
  |                                                                                                                     
  |==================================                                                        |  38%, ETA 10:40
  |                                                                                                                     
  |===================================                                                       |  38%, ETA 10:40
  |                                                                                                                     
  |===================================                                                       |  38%, ETA 10:39
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:38
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:38
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:37
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:37
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:38
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:38
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:38
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:40
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:40
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:37
  |                                                                                                                     
  |===================================                                                       |  39%, ETA 10:33
  |                                                                                                                     
  |====================================                                                      |  39%, ETA 10:32
  |                                                                                                                     
  |====================================                                                      |  40%, ETA 10:31
  |                                                                                                                     
  |====================================                                                      |  40%, ETA 10:28
  |                                                                                                                     
  |====================================                                                      |  40%, ETA 10:20
  |                                                                                                                     
  |====================================                                                      |  40%, ETA 10:12
  |                                                                                                                     
  |====================================                                                      |  41%, ETA 10:10
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:09
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:01
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:01
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 09:59
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:00
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:00
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 09:59
  |                                                                                                                     
  |=====================================                                                     |  41%, ETA 10:00
  |                                                                                                                     
  |=====================================                                                     |  42%, ETA 09:59
  |                                                                                                                     
  |=====================================                                                     |  42%, ETA 10:00
  |                                                                                                                     
  |=====================================                                                     |  42%, ETA 10:01
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:01
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:00
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:02
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:01
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:01
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:02
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:02
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:01
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 10:00
  |                                                                                                                     
  |======================================                                                    |  42%, ETA 09:57
  |                                                                                                                     
  |======================================                                                    |  43%, ETA 09:57
  |                                                                                                                     
  |======================================                                                    |  43%, ETA 09:54
  |                                                                                                                     
  |=======================================                                                   |  43%, ETA 09:52
  |                                                                                                                     
  |=======================================                                                   |  43%, ETA 09:48
  |                                                                                                                     
  |=======================================                                                   |  43%, ETA 09:41
  |                                                                                                                     
  |=======================================                                                   |  44%, ETA 09:38
  |                                                                                                                     
  |=======================================                                                   |  44%, ETA 09:33
  |                                                                                                                     
  |=======================================                                                   |  44%, ETA 09:33
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:32
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:31
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:31
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:30
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:28
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:29
  |                                                                                                                     
  |========================================                                                  |  44%, ETA 09:28
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:27
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:26
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:25
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:24
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:25
  |                                                                                                                     
  |========================================                                                  |  45%, ETA 09:25
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:25
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:24
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:23
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:21
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:22
  |                                                                                                                     
  |=========================================                                                 |  45%, ETA 09:22
  |                                                                                                                     
  |=========================================                                                 |  46%, ETA 09:21
  |                                                                                                                     
  |=========================================                                                 |  46%, ETA 09:19
  |                                                                                                                     
  |=========================================                                                 |  46%, ETA 09:16
  |                                                                                                                     
  |=========================================                                                 |  46%, ETA 09:14
  |                                                                                                                     
  |==========================================                                                |  46%, ETA 09:12
  |                                                                                                                     
  |==========================================                                                |  46%, ETA 09:06
  |                                                                                                                     
  |==========================================                                                |  47%, ETA 09:05
  |                                                                                                                     
  |==========================================                                                |  47%, ETA 08:58
  |                                                                                                                     
  |==========================================                                                |  47%, ETA 08:56
  |                                                                                                                     
  |==========================================                                                |  47%, ETA 08:54
  |                                                                                                                     
  |===========================================                                               |  47%, ETA 08:54
  |                                                                                                                     
  |===========================================                                               |  47%, ETA 08:54
  |                                                                                                                     
  |===========================================                                               |  47%, ETA 08:53
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:52
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:50
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:50
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:49
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:49
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:47
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:47
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:46
  |                                                                                                                     
  |===========================================                                               |  48%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  48%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  48%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:45
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:44
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:42
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:39
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:36
  |                                                                                                                     
  |============================================                                              |  49%, ETA 08:35
  |                                                                                                                     
  |=============================================                                             |  49%, ETA 08:34
  |                                                                                                                     
  |=============================================                                             |  50%, ETA 08:33
  |                                                                                                                     
  |=============================================                                             |  50%, ETA 08:29
  |                                                                                                                     
  |=============================================                                             |  50%, ETA 08:20
  |                                                                                                                     
  |=============================================                                             |  51%, ETA 08:16
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:15
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:11
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:10
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:09
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:07
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:07
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:06
  |                                                                                                                     
  |==============================================                                            |  51%, ETA 08:05
  |                                                                                                                     
  |==============================================                                            |  52%, ETA 08:05
  |                                                                                                                     
  |==============================================                                            |  52%, ETA 08:03
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 08:03
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 08:01
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 08:00
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 07:59
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 07:59
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 07:58
  |                                                                                                                     
  |===============================================                                           |  52%, ETA 07:57
  |                                                                                                                     
  |===============================================                                           |  53%, ETA 07:53
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:51
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:53
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:53
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:54
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:53
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  53%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  54%, ETA 07:52
  |                                                                                                                     
  |================================================                                          |  54%, ETA 07:51
  |                                                                                                                     
  |================================================                                          |  54%, ETA 07:51
  |                                                                                                                     
  |================================================                                          |  54%, ETA 07:48
  |                                                                                                                     
  |=================================================                                         |  54%, ETA 07:48
  |                                                                                                                     
  |=================================================                                         |  54%, ETA 07:43
  |                                                                                                                     
  |=================================================                                         |  54%, ETA 07:41
  |                                                                                                                     
  |=================================================                                         |  54%, ETA 07:41
  |                                                                                                                     
  |=================================================                                         |  54%, ETA 07:41
  |                                                                                                                     
  |=================================================                                         |  55%, ETA 07:40
  |                                                                                                                     
  |=================================================                                         |  55%, ETA 07:38
  |                                                                                                                     
  |=================================================                                         |  55%, ETA 07:36
  |                                                                                                                     
  |=================================================                                         |  55%, ETA 07:35
  |                                                                                                                     
  |==================================================                                        |  55%, ETA 07:34
markers <- FindMarkers(object = pbmc, ident.1 = 5)

   |                                                  | 0 % ~calculating  
   |+                                                 | 1 % ~56s          
   |++                                                | 2 % ~57s          
   |++                                                | 3 % ~57s          
   |+++                                               | 4 % ~57s          
   |+++                                               | 5 % ~56s          
   |++++                                              | 6 % ~55s          
   |++++                                              | 7 % ~54s          
   |+++++                                             | 8 % ~54s          
   |+++++                                             | 9 % ~54s          
   |++++++                                            | 10% ~53s          
   |++++++                                            | 11% ~53s          
   |+++++++                                           | 12% ~53s          
   |+++++++                                           | 13% ~52s          
   |++++++++                                          | 14% ~52s          
   |++++++++                                          | 15% ~51s          
   |+++++++++                                         | 16% ~51s          
   |+++++++++                                         | 17% ~50s          
   |++++++++++                                        | 18% ~49s          
   |++++++++++                                        | 19% ~49s          
   |+++++++++++                                       | 20% ~48s          
   |+++++++++++                                       | 21% ~47s          
   |++++++++++++                                      | 22% ~47s          
   |++++++++++++                                      | 23% ~46s          
   |+++++++++++++                                     | 24% ~47s          
   |+++++++++++++                                     | 25% ~47s          
   |++++++++++++++                                    | 26% ~46s          
   |++++++++++++++                                    | 27% ~45s          
   |+++++++++++++++                                   | 28% ~44s          
   |+++++++++++++++                                   | 29% ~44s          
   |++++++++++++++++                                  | 30% ~43s          
   |++++++++++++++++                                  | 31% ~42s          
   |+++++++++++++++++                                 | 32% ~41s          
   |+++++++++++++++++                                 | 33% ~41s          
   |++++++++++++++++++                                | 34% ~40s          
   |++++++++++++++++++                                | 35% ~39s          
   |+++++++++++++++++++                               | 36% ~39s          
   |+++++++++++++++++++                               | 37% ~38s          
   |++++++++++++++++++++                              | 38% ~38s          
   |++++++++++++++++++++                              | 39% ~37s          
   |+++++++++++++++++++++                             | 40% ~36s          
   |+++++++++++++++++++++                             | 41% ~36s          
   |++++++++++++++++++++++                            | 42% ~35s          
   |++++++++++++++++++++++                            | 43% ~34s          
   |+++++++++++++++++++++++                           | 44% ~34s          
   |+++++++++++++++++++++++                           | 45% ~33s          
   |++++++++++++++++++++++++                          | 46% ~32s          
   |++++++++++++++++++++++++                          | 47% ~32s          
   |+++++++++++++++++++++++++                         | 48% ~31s          
   |+++++++++++++++++++++++++                         | 49% ~30s          
   |++++++++++++++++++++++++++                        | 51% ~30s          
   |++++++++++++++++++++++++++                        | 52% ~29s          
   |+++++++++++++++++++++++++++                       | 53% ~29s          
   |+++++++++++++++++++++++++++                       | 54% ~28s          
   |++++++++++++++++++++++++++++                      | 55% ~27s          
   |++++++++++++++++++++++++++++                      | 56% ~27s          
   |+++++++++++++++++++++++++++++                     | 57% ~26s          
   |+++++++++++++++++++++++++++++                     | 58% ~26s          
   |++++++++++++++++++++++++++++++                    | 59% ~25s          
   |++++++++++++++++++++++++++++++                    | 60% ~24s          
   |+++++++++++++++++++++++++++++++                   | 61% ~24s          
   |+++++++++++++++++++++++++++++++                   | 62% ~23s          
   |++++++++++++++++++++++++++++++++                  | 63% ~23s          
   |++++++++++++++++++++++++++++++++                  | 64% ~22s          
   |+++++++++++++++++++++++++++++++++                 | 65% ~21s          
   |+++++++++++++++++++++++++++++++++                 | 66% ~21s          
   |++++++++++++++++++++++++++++++++++                | 67% ~20s          
   |++++++++++++++++++++++++++++++++++                | 68% ~20s          
   |+++++++++++++++++++++++++++++++++++               | 69% ~19s          
   |+++++++++++++++++++++++++++++++++++               | 70% ~18s          
   |++++++++++++++++++++++++++++++++++++              | 71% ~18s          
   |++++++++++++++++++++++++++++++++++++              | 72% ~17s          
   |+++++++++++++++++++++++++++++++++++++             | 73% ~17s          
   |+++++++++++++++++++++++++++++++++++++             | 74% ~16s          
   |++++++++++++++++++++++++++++++++++++++            | 75% ~15s          
   |++++++++++++++++++++++++++++++++++++++            | 76% ~15s          
   |+++++++++++++++++++++++++++++++++++++++           | 77% ~14s          
   |+++++++++++++++++++++++++++++++++++++++           | 78% ~14s          
   |++++++++++++++++++++++++++++++++++++++++          | 79% ~13s          
   |++++++++++++++++++++++++++++++++++++++++          | 80% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++         | 81% ~12s          
   |+++++++++++++++++++++++++++++++++++++++++         | 82% ~11s          
   |++++++++++++++++++++++++++++++++++++++++++        | 83% ~10s          
   |++++++++++++++++++++++++++++++++++++++++++        | 84% ~10s          
temp = (as.matrix(pbmc.data))
hist(log2(colSums(temp))+1, main="sum of counts for all cells")

hist(log2(rowSums(temp))+1, main= "sum of counts for all genes")

#which cells express Alb above a certain point
hist(log2(temp[rownames(temp)== "Alb", ]+1))

hist(log2(temp[rownames(temp)== "Epcam", ]+1))

hist(log2(temp[ rownames(temp) == "Epcam", which(temp[rownames(temp)== "Sox9", ]>4)]+1))

hist(log2(temp[rownames(temp)== "Xist", ]+1))

hist(log2(temp[ rownames(temp) == "Xist", which(temp[rownames(temp)== "Sox9", ]>4)]+1))

hist(log2(temp[rownames(temp)== "Hnf4a", ]+1))

hist(log2(temp[rownames(temp)== "Onecut1", ]+1))

hist(log2(temp[rownames(temp)== "Sox9", ]+1))

temp3 = temp[which(rownames(temp) %in% marker_genes), ]
library(pheatmap)
pheatmap(log2(temp3+1))
temp6 = apply(temp, 2, function (x) (x+0.00000000000000000000000000001)/sum(x))

genes expressing Albumin don’t express epcam much genes expressing epcam have some albumin expression

alb_exp = temp6[, which(temp6 [which(rownames(temp6)=="Alb"),]>0)]
alb_exp_markers = alb_exp[which(rownames(alb_exp) %in% marker_genes), ]
pheatmap(log2(alb_exp_markers))

epcam_exp = temp6[, which(temp6 [which(rownames(temp6)=="Epcam"),]>0)]
epcam_exp_markers = epcam_exp[which(rownames(epcam_exp) %in% marker_genes), ]
pheatmap(log2(epcam_exp_markers))

singler = SingleR(method = "single", sc_data, ref_data, types, clusters = NULL,
  genes = "de", quantile.use = 0.8, p.threshold = 0.05,
  fine.tune = TRUE, fine.tune.thres = 0.05, sd.thres = 1,
  do.pvals = T, numCores = SingleR.numCores)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCmBgYHtyfQpsaWJyYXJ5KFNldXJhdCkKbGlicmFyeShkcGx5cikKCiMgTG9hZCB0aGUgUEJNQyBkYXRhc2V0CnBibWMuZGF0YSA8LSBSZWFkMTBYKGRhdGEuZGlyID0gIn4vQm94IFN5bmMvbGFwdG9wX2ZvbGRlcnMvV2lsbGVuYnJpbmcvRmVuZyBTaW5nbGUgQ2VsbC93aWxsZW5icmluZ2gvRkNfMTAyNDE4X2FuYWx5c2lzL2ZpbHRlcmVkX2dlbmVfYmNfbWF0cmljZXMvbW0xMC8iKQoKIyBFeGFtaW5lIHRoZSBtZW1vcnkgc2F2aW5ncyBiZXR3ZWVuIHJlZ3VsYXIgYW5kIHNwYXJzZSBtYXRyaWNlcwpkZW5zZS5zaXplIDwtIG9iamVjdC5zaXplKHggPSBhcy5tYXRyaXgoeCA9IHBibWMuZGF0YSkpCmRlbnNlLnNpemUKYGBgCgpgYGB7cn0Kc3BhcnNlLnNpemUgPC0gb2JqZWN0LnNpemUoeCA9IHBibWMuZGF0YSkKc3BhcnNlLnNpemUKYGBgCgpgYGB7cn0KZGVuc2Uuc2l6ZS9zcGFyc2Uuc2l6ZQpgYGAKCmBgYHtyfQpwYm1jIDwtIENyZWF0ZVNldXJhdE9iamVjdChyYXcuZGF0YSA9IHBibWMuZGF0YSwgbWluLmNlbGxzID0gMywgbWluLmdlbmVzID0gMjAwLCAKICAgIHByb2plY3QgPSAiMTBYX1BCTUMiKQpgYGAKCmBgYHtyfQojIFRoZSBudW1iZXIgb2YgZ2VuZXMgYW5kIFVNSXMgKG5HZW5lIGFuZCBuVU1JKSBhcmUgYXV0b21hdGljYWxseSBjYWxjdWxhdGVkCiMgZm9yIGV2ZXJ5IG9iamVjdCBieSBTZXVyYXQuICBGb3Igbm9uLVVNSSBkYXRhLCBuVU1JIHJlcHJlc2VudHMgdGhlIHN1bSBvZgojIHRoZSBub24tbm9ybWFsaXplZCB2YWx1ZXMgd2l0aGluIGEgY2VsbCBXZSBjYWxjdWxhdGUgdGhlIHBlcmNlbnRhZ2Ugb2YKIyBtaXRvY2hvbmRyaWFsIGdlbmVzIGhlcmUgYW5kIHN0b3JlIGl0IGluIHBlcmNlbnQubWl0byB1c2luZyBBZGRNZXRhRGF0YS4KIyBXZSB1c2Ugb2JqZWN0QHJhdy5kYXRhIHNpbmNlIHRoaXMgcmVwcmVzZW50cyBub24tdHJhbnNmb3JtZWQgYW5kCiMgbm9uLWxvZy1ub3JtYWxpemVkIGNvdW50cyBUaGUgJSBvZiBVTUkgbWFwcGluZyB0byBNVC1nZW5lcyBpcyBhIGNvbW1vbgoKIyBzY1JOQS1zZXEgUUMgbWV0cmljLgptaXRvLmdlbmVzIDwtIGdyZXAocGF0dGVybiA9ICJebXQtIiwgeCA9IHJvd25hbWVzKHggPSBwYm1jQGRhdGEpLCB2YWx1ZSA9IFRSVUUpCnBlcmNlbnQubWl0byA8LSBNYXRyaXg6OmNvbFN1bXMocGJtY0ByYXcuZGF0YVttaXRvLmdlbmVzLCBdKS9NYXRyaXg6OmNvbFN1bXMocGJtY0ByYXcuZGF0YSkKCiMgQWRkTWV0YURhdGEgYWRkcyBjb2x1bW5zIHRvIG9iamVjdEBtZXRhLmRhdGEsIGFuZCBpcyBhIGdyZWF0IHBsYWNlIHRvCiMgc3Rhc2ggUUMgc3RhdHMKcGJtYyA8LSBBZGRNZXRhRGF0YShvYmplY3QgPSBwYm1jLCBtZXRhZGF0YSA9IHBlcmNlbnQubWl0bywgY29sLm5hbWUgPSAicGVyY2VudC5taXRvIikKVmxuUGxvdChvYmplY3QgPSBwYm1jLCBmZWF0dXJlcy5wbG90ID0gYygibkdlbmUiLCAiblVNSSIsICJwZXJjZW50Lm1pdG8iKSwgbkNvbCA9IDMpCgpgYGAKCmBgYHtyfQojIEdlbmVQbG90IGlzIHR5cGljYWxseSB1c2VkIHRvIHZpc3VhbGl6ZSBnZW5lLWdlbmUgcmVsYXRpb25zaGlwcywgYnV0IGNhbgojIGJlIHVzZWQgZm9yIGFueXRoaW5nIGNhbGN1bGF0ZWQgYnkgdGhlIG9iamVjdCwgaS5lLiBjb2x1bW5zIGluCiMgb2JqZWN0QG1ldGEuZGF0YSwgUEMgc2NvcmVzIGV0Yy4gIFNpbmNlIHRoZXJlIGlzIGEgcmFyZSBzdWJzZXQgb2YgY2VsbHMKIyB3aXRoIGFuIG91dGxpZXIgbGV2ZWwgb2YgaGlnaCBtaXRvY2hvbmRyaWFsIHBlcmNlbnRhZ2UgYW5kIGFsc28gbG93IFVNSQojIGNvbnRlbnQsIHdlIGZpbHRlciB0aGVzZSBhcyB3ZWxsCnBhcihtZnJvdyA9IGMoMSwgMikpCkdlbmVQbG90KG9iamVjdCA9IHBibWMsIGdlbmUxID0gIm5VTUkiLCBnZW5lMiA9ICJwZXJjZW50Lm1pdG8iKQpHZW5lUGxvdChvYmplY3QgPSBwYm1jLCBnZW5lMSA9ICJuVU1JIiwgZ2VuZTIgPSAibkdlbmUiKQpgYGAKCgpgYGB7cn0KIyBXZSBmaWx0ZXIgb3V0IGNlbGxzIHRoYXQgaGF2ZSB1bmlxdWUgZ2VuZSBjb3VudHMgb3ZlciAyLDUwMCBvciBsZXNzIHRoYW4KIyAyMDAgTm90ZSB0aGF0IGxvdy50aHJlc2hvbGRzIGFuZCBoaWdoLnRocmVzaG9sZHMgYXJlIHVzZWQgdG8gZGVmaW5lIGEKIyAnZ2F0ZScuICAtSW5mIGFuZCBJbmYgc2hvdWxkIGJlIHVzZWQgaWYgeW91IGRvbid0IHdhbnQgYSBsb3dlciBvciB1cHBlcgojIHRocmVzaG9sZC4KcGJtYyA8LSBGaWx0ZXJDZWxscyhvYmplY3QgPSBwYm1jLCBzdWJzZXQubmFtZXMgPSBjKCJuR2VuZSIsICJwZXJjZW50Lm1pdG8iKSwgCiAgICBsb3cudGhyZXNob2xkcyA9IGMoMjAwLCAtSW5mKSwgaGlnaC50aHJlc2hvbGRzID0gYyg4MDAwLCAwLjUwKSkKYGBgCgoKYGBge3J9CnBibWMgPC0gTm9ybWFsaXplRGF0YShvYmplY3QgPSBwYm1jLCBub3JtYWxpemF0aW9uLm1ldGhvZCA9ICJMb2dOb3JtYWxpemUiLCAKICAgIHNjYWxlLmZhY3RvciA9IDEwMDAwKQpwYm1jIDwtIEZpbmRWYXJpYWJsZUdlbmVzKG9iamVjdCA9IHBibWMsIG1lYW4uZnVuY3Rpb24gPSBFeHBNZWFuLCBkaXNwZXJzaW9uLmZ1bmN0aW9uID0gTG9nVk1SLCAKICAgIHgubG93LmN1dG9mZiA9IDAuMDEyNSwgeC5oaWdoLmN1dG9mZiA9IDMsIHkuY3V0b2ZmID0gMC41KQpwYm1jIDwtIFNjYWxlRGF0YShvYmplY3QgPSBwYm1jLCB2YXJzLnRvLnJlZ3Jlc3MgPSBjKCJuVU1JIiwgInBlcmNlbnQubWl0byIpKQpwYm1jIDwtIFJ1blBDQShvYmplY3QgPSBwYm1jLCBwYy5nZW5lcyA9IHBibWNAdmFyLmdlbmVzLCBkby5wcmludCA9IFRSVUUsIHBjcy5wcmludCA9IDE6NSwgCiAgICBnZW5lcy5wcmludCA9IDUpCgpgYGAKCmBgYHtyfQpWaXpQQ0Eob2JqZWN0ID0gcGJtYywgcGNzLnVzZSA9IDE6MTIpCgpgYGAKCmBgYHtyfQpQQ0FQbG90KG9iamVjdCA9IHBibWMsIGRpbS4xID0gMSwgZGltLjIgPSAyKQpQQ0FQbG90KG9iamVjdCA9IHBibWMsIGRpbS4xID0gMSwgZGltLjIgPSAzKQpQQ0FQbG90KG9iamVjdCA9IHBibWMsIGRpbS4xID0gMiwgZGltLjIgPSAzKQpgYGAKCmBgYHtyfQpwYm1jIDwtIFByb2plY3RQQ0Eob2JqZWN0ID0gcGJtYywgZG8ucHJpbnQgPSBGQUxTRSkKUENIZWF0bWFwKG9iamVjdCA9IHBibWMsIHBjLnVzZSA9IDE6NCwgY2VsbHMudXNlID0gMjAwKQojZGltKDAsIGRvLmJhbGFuY2VkID0gVFJVRSwgbGFiZWwuY29sdW1ucyA9IEZBTFNFKQpgYGAKYGBge3J9Cm1hcmtlcl9nZW5lcyA9IGMoIkhuZjRhIiwgIkFsYiIsICJGYWgiLCAiS3J0OCIsICJLcnQxOCIsICJHNnBjIiwgIlNveDkiLCAiS3J0NyIsICJLcnQxOSIsICJFcGNhbSIsICJPbmVjdXQxIiwgIkFmcCIsICJYaXN0IikKYGBgCgpgYGB7cn0KdmxuUGxvdChwYm1jLGMoIkhuZjRhIiwgIkFsYiIsICJGYWgiKSkKCmBgYAoKYGBge3J9CnBibWMgPC0gRmluZENsdXN0ZXJzKG9iamVjdCA9IHBibWMsIHJlZHVjdGlvbi50eXBlID0gInBjYSIsIGRpbXMudXNlID0gMTo1LCByZXNvbHV0aW9uID0gMC42LCBwcmludC5vdXRwdXQgPSAwLCBzYXZlLlNOTiA9IFRSVUUpCnBibWMgPC0gUnVuVFNORShvYmplY3QgPSBwYm1jLCBkaW1zLnVzZSA9IDE6MTAsIGRvLmZhc3QgPSBUUlVFKQpgYGAKCgpgYGB7cn0KVFNORVBsb3Qob2JqZWN0ID0gcGJtYykKUHJpbnRGaW5kQ2x1c3RlcnNQYXJhbXMob2JqZWN0ID0gcGJtYykKVmxuUGxvdChvYmplY3QgPSBwYm1jLCBmZWF0dXJlcy5wbG90ID0gYygibkdlbmUiLCAiblVNSSIsICJwZXJjZW50Lm1pdG8iKSwgbkNvbCA9IDMpCmBgYAoKYGBge3J9CiNpbnN0YWxsLnBhY2thZ2VzKCAiZGV2dG9vbHMiICkKI2RldnRvb2xzOjppbnN0YWxsX2dpdGh1YiggImFuZGVycy1iaW9zdGF0L0pzUkNvbSIgKQojZGV2dG9vbHM6Omluc3RhbGxfZ2l0aHViKCAiYW5kZXJzLWJpb3N0YXQvc2xlZXB3YWxrIiApCmxpYnJhcnkoc2xlZXB3YWxrKQojc2xlZXB3YWxrKGRhdGEuZnJhbWUocGJtY0BkcltbInRzbmUiXV1AY2VsbC5lbWJlZGRpbmdzKSwgZmVhdHVyZU1hdHJpY2VzID0gZGF0YS5tYXRyaXgodChwYm1jQGRhdGEpKSkKc2xlZXB3YWxrKGFzLm1hdHJpeChwYm1jQGRyW1sidHNuZSJdXUBjZWxsLmVtYmVkZGluZ3MpLCBmZWF0dXJlTWF0cmljZXMgPSBhcy5tYXRyaXgodChwYm1jQGRhdGEpKSkKYGBgCgoKYGBge3J9CkRvdFBsb3QocGJtYywgbWFya2VyX2dlbmVzKQpgYGAKCmBgYHtyfQojbGlicmFyeShNQVNUKQojcGJtYz1idWlsZENsdXN0ZXJUcmVlKHBibWMsZG8ucmVvcmRlciA9IFRSVUUscmVvcmRlci5udW1lcmljID0gVFJVRSxwY3MudXNlID0gMToxMSkKI3Bsb3RDbHVzdGVyVHJlZShwYm1jKQoKICBzaW5nbGVyID0gQ3JlYXRlU2luZ2xlck9iamVjdChwYm1jLmRhdGEsIGFubm90ID0gTlVMTCwgcHJvamVjdC5uYW1lPSJNQ0EiLCBtaW4uZ2VuZXMgPSAwLAogIHRlY2hub2xvZ3kgPSAiMTBYIiwgc3BlY2llcyA9ICJNb3VzZSIsIGNpdGF0aW9uID0gIiIsCiAgcmVmLmxpc3QgPSBsaXN0KCksIG5vcm1hbGl6ZS5nZW5lLmxlbmd0aCA9IEYsIHZhcmlhYmxlLmdlbmVzID0gImRlIiwKICBmaW5lLnR1bmUgPSBULCBkby5zaWduYXR1cmVzID0gVCwgY2x1c3RlcnMgPSBOVUxMLCBkby5tYWluLnR5cGVzID0gVCwgCiAgcmVkdWNlLmZpbGUuc2l6ZSA9IFQsIG51bUNvcmVzID0gU2luZ2xlUi5udW1Db3JlcykKYGBgCgpgYGB7cn0KbWFya2VycyA8LSBGaW5kTWFya2VycyhvYmplY3QgPSBwYm1jLCBpZGVudC4xID0gNSkKd3JpdGUudGFibGUobWFya2VycywgImNsdXN0ZXI1LnR4dCIsIHNlcD0iXHQiKQptYXJrZXJzIDwtIEZpbmRNYXJrZXJzKG9iamVjdCA9IHBibWMsIGlkZW50LjEgPSA2KQp3cml0ZS50YWJsZShtYXJrZXJzLCAiY2x1c3RlcjYudHh0Iiwgc2VwPSJcdCIpCm1hcmtlcnMgPC0gRmluZE1hcmtlcnMob2JqZWN0ID0gcGJtYywgaWRlbnQuMSA9IDcpCndyaXRlLnRhYmxlKG1hcmtlcnMsICJjbHVzdGVyNy50eHQiLCBzZXA9Ilx0IikKbWFya2VycyA8LSBGaW5kTWFya2VycyhvYmplY3QgPSBwYm1jLCBpZGVudC4xID0gOCkKd3JpdGUudGFibGUobWFya2VycywgImNsdXN0ZXI4LnR4dCIsIHNlcD0iXHQiKQptYXJrZXJzIDwtIEZpbmRNYXJrZXJzKG9iamVjdCA9IHBibWMsIGlkZW50LjEgPSA1OjgpCndyaXRlLnRhYmxlKG1hcmtlcnMsICJjbHVzdGVyNXRocnU4LnR4dCIsIHNlcD0iXHQiKQpgYGAKCmBgYHtyfQoKdGVtcCA9IChhcy5tYXRyaXgocGJtYy5kYXRhKSkKaGlzdChsb2cyKGNvbFN1bXModGVtcCkpKzEsIG1haW49InN1bSBvZiBjb3VudHMgZm9yIGFsbCBjZWxscyIpCmhpc3QobG9nMihyb3dTdW1zKHRlbXApKSsxLCBtYWluPSAic3VtIG9mIGNvdW50cyBmb3IgYWxsIGdlbmVzIikKCiN3aGljaCBjZWxscyBleHByZXNzIEFsYiBhYm92ZSBhIGNlcnRhaW4gcG9pbnQKaGlzdChsb2cyKHRlbXBbcm93bmFtZXModGVtcCk9PSAiQWxiIiwgXSsxKSkKaGlzdChsb2cyKHRlbXBbcm93bmFtZXModGVtcCk9PSAiRXBjYW0iLCBdKzEpKQpoaXN0KGxvZzIodGVtcFsgcm93bmFtZXModGVtcCkgPT0gIkVwY2FtIiwgd2hpY2godGVtcFtyb3duYW1lcyh0ZW1wKT09ICJTb3g5IiwgXT40KV0rMSkpCmhpc3QobG9nMih0ZW1wW3Jvd25hbWVzKHRlbXApPT0gIlhpc3QiLCBdKzEpKQpoaXN0KGxvZzIodGVtcFsgcm93bmFtZXModGVtcCkgPT0gIlhpc3QiLCB3aGljaCh0ZW1wW3Jvd25hbWVzKHRlbXApPT0gIlNveDkiLCBdPjQpXSsxKSkKaGlzdChsb2cyKHRlbXBbcm93bmFtZXModGVtcCk9PSAiSG5mNGEiLCBdKzEpKQpoaXN0KGxvZzIodGVtcFtyb3duYW1lcyh0ZW1wKT09ICJPbmVjdXQxIiwgXSsxKSkKaGlzdChsb2cyKHRlbXBbcm93bmFtZXModGVtcCk9PSAiU294OSIsIF0rMSkpCgpgYGAKCmBgYHtyfQpsaWJyYXJ5KHBoZWF0bWFwKQp0ZW1wMyA9IHRlbXBbd2hpY2gocm93bmFtZXModGVtcCkgJWluJSBtYXJrZXJfZ2VuZXMpLCBdCnBoZWF0bWFwKGxvZzIodGVtcDMrMSksIHNob3dfY29sbmFtZXM9RikKdGVtcDYgPSBhcHBseSh0ZW1wLCAyLCBmdW5jdGlvbiAoeCkgKHgrMC4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDEpL3N1bSh4KSkKdGVtcDcgPSB0ZW1wNlt3aGljaChyb3duYW1lcyh0ZW1wNikgJWluJSBtYXJrZXJfZ2VuZXMpLCBdCnBoZWF0bWFwKGxvZzIodGVtcDcpLCBzaG93X2NvbG5hbWVzPUYpCmBgYAoKZ2VuZXMgZXhwcmVzc2luZyBBbGJ1bWluIGRvbid0IGV4cHJlc3MgZXBjYW0gbXVjaApnZW5lcyBleHByZXNzaW5nIGVwY2FtIGhhdmUgc29tZSBhbGJ1bWluIGV4cHJlc3Npb24KYGBge3J9CmFsYl9leHAgPSB0ZW1wNlssIHdoaWNoKHRlbXA2IFt3aGljaChyb3duYW1lcyh0ZW1wNik9PSJBbGIiKSxdPjApXQphbGJfZXhwX21hcmtlcnMgPSBhbGJfZXhwW3doaWNoKHJvd25hbWVzKGFsYl9leHApICVpbiUgbWFya2VyX2dlbmVzKSwgXQpwaGVhdG1hcChsb2cyKGFsYl9leHBfbWFya2VycyksIHNob3dfY29sbmFtZXM9RikKZXBjYW1fZXhwID0gdGVtcDZbLCB3aGljaCh0ZW1wNiBbd2hpY2gocm93bmFtZXModGVtcDYpPT0iRXBjYW0iKSxdPjApXQplcGNhbV9leHBfbWFya2VycyA9IGVwY2FtX2V4cFt3aGljaChyb3duYW1lcyhlcGNhbV9leHApICVpbiUgbWFya2VyX2dlbmVzKSwgXQpwaGVhdG1hcChsb2cyKGVwY2FtX2V4cF9tYXJrZXJzKSwgc2hvd19jb2xuYW1lcz1GKQpgYGAKCgpgYGB7cn0Kc2luZ2xlciA9IFNpbmdsZVIobWV0aG9kID0gInNpbmdsZSIsIHNjX2RhdGEsIHJlZl9kYXRhLCB0eXBlcywgY2x1c3RlcnMgPSBOVUxMLAogIGdlbmVzID0gImRlIiwgcXVhbnRpbGUudXNlID0gMC44LCBwLnRocmVzaG9sZCA9IDAuMDUsCiAgZmluZS50dW5lID0gVFJVRSwgZmluZS50dW5lLnRocmVzID0gMC4wNSwgc2QudGhyZXMgPSAxLAogIGRvLnB2YWxzID0gVCwgbnVtQ29yZXMgPSBTaW5nbGVSLm51bUNvcmVzKQpgYGAKCg==